<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/templates/mantenimiento.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                xmlns:r="http://richfaces.org">
    <ui:define name="title">
        Pedido laboratorio
    </ui:define>    
    <ui:define name="datos">
        <center>
            <h:panelGrid id="panelDatos">
                <h:form id="formDatos">

                    <h:panelGrid columns="2" >
                        <h:outputText value="Fecha agenda"/>
                        <p:calendar label="Fecha" value="#{jsfLaboratorio.fecha}"  id="fecha" >
                            <p:ajax event="dateSelect" process="@this" update=":panelDatos" 
                                    listener="#{jsfLaboratorio.cargarLista()}"/>
                        </p:calendar>
                    </h:panelGrid>

                    <h:panelGrid id="panelLista">
                        <p:dataTable id="listaSimple" value="#{jsfLaboratorio.lista}" var="item" rendered="#{jsfLaboratorio.lista.size()>0}"  rows="5" paginator="true"   
                                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                                     rowsPerPageTemplate="5,10,15" paginatorPosition="top" rowIndexVar="rowIndex" rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'odd-row' : 'even-row'}">
                            <p:column width="30" headerText="Fecha" >
                                <h:outputText value="#{item.cplFechaMuestra}">
                                    <f:convertDateTime pattern="dd/MM/yyyy"/>
                                </h:outputText>
                            </p:column>
                            <p:column width="50" headerText="Estado" filterBy="#{item.cplEstado}"   
                                      filterMatchMode="contains">
                                <p:commandLink value="#{item.cplEstado eq 1 ? 'PENDIENTE' : (item.cplEstado eq 2 ? 'PROCESADO':'DISPONIBLE')}" process="@this" update=":panelDatos" 
                                               action="#{jsfLaboratorio.editarAction(item)}" title="Editar">
                                </p:commandLink>
                            </p:column>
                            <p:column width="50" headerText="His/Clínica"   filterBy="#{item.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcHistoriaClinica}" >
                                <p:commandLink value="#{item.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcHistoriaClinica}" process="@this" update=":panelDatos" 
                                               action="#{jsfLaboratorio.editarAction(item)}" title="Editar">
                                </p:commandLink>
                            </p:column>
                            <p:column width="80" headerText="Nombres" filterBy="#{item.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcNombreFull}"   
                                      filterMatchMode="contains">
                                <p:commandLink value="#{item.cexConsulta.cexPreparacion.cexAgenda.cexHistoriaClinica.chcNombreFull}" process="@this" update=":panelDatos" 
                                               action="#{jsfLaboratorio.editarAction(item)}" title="Editar">
                                </p:commandLink>
                            </p:column> 
                            <p:column width="80" headerText="Céd/Persona"   filterBy="#{item.admPersona.aprCedula}" >
                                <p:commandLink value="#{item.admPersona.aprCedula}" process="@this" update=":panelDatos" 
                                               action="#{jsfLaboratorio.editarAction(item)}" title="Editar">
                                </p:commandLink>
                            </p:column>
                            <p:column width="80" headerText="Nombres Persona" filterBy="#{item.admPersona.aprNombreFull}"   
                                      filterMatchMode="contains">
                                <p:commandLink value="#{item.admPersona.aprNombreFull}" process="@this" update=":panelDatos" 
                                               action="#{jsfLaboratorio.editarAction(item)}" title="Editar">
                                </p:commandLink>
                            </p:column> 
                        </p:dataTable>

                    </h:panelGrid>


                    <p:panel id="pnlBusqueda" header="Datos paciente" >
                        <h:panelGrid columns="5" >
                            <p:panel>
                                <h:panelGrid columns="3" >
                                    <h:outputLabel  value="Datos consulta" />
                                    <p:selectBooleanCheckbox label="Datos consulta" id="isConsulta"  value="#{jsfLaboratorio.isConsulta}" >
                                        <p:ajax update="pnlBusqueda" process="@this" listener="#{jsfLaboratorio.resetearHistoria()}" />
                                    </p:selectBooleanCheckbox>
                                    <p:message for="isConsulta" />
                                </h:panelGrid>
                            </p:panel>
                            <p:spacer width="20" height="10" />
                            <h:outputLabel rendered="#{not empty jsfLaboratorio.object.cplId}" styleClass="letraTomate"  value="TURNO SELECCIONADO" />
                            <p:spacer width="20" height="10" />

                            <h:panelGrid id="busqueda" rendered="#{jsfLaboratorio.isConsulta eq false}"  columns="6"   >

                                <h:outputLabel  value="Buscar persona" />
                                <p:selectOneMenu  label="Buscar:" id="tipo" value="#{jsfLaboratorio.tipoBusqueda}"   >                              
                                    <f:selectItem itemLabel="Cédula" itemValue="1"/>
                                    <f:selectItem itemLabel="Pasaporte" itemValue="2"/>
                                </p:selectOneMenu>
                                <h:panelGroup id="pngG" >
                                    <p:inputText value="#{jsfLaboratorio.parametroBusqueda}" size="12" maxlength="15" id="valorBusqueda" />
                                </h:panelGroup>
                                <p:commandButton value="Buscar" action="#{jsfLaboratorio.buscarHistorial()}" process="busqueda" 
                                                 update="pnlBusqueda :formPop:pnlPersona" title="Buscar historial">

                                </p:commandButton>

                                <p:spacer width="80" height="10" />

                                <p:commandButton value="Crear persona" type="button" onclick="PF('dlgPersona').show();" />

                            </h:panelGrid>
                            <h:panelGrid id="busquedaHc" rendered="#{jsfLaboratorio.isConsulta eq true}"  columns="8"   >
                                <h:outputLabel  value="Fecha" />
                                <p:calendar size="10" value="#{jsfLaboratorio.fechaConsulta}" navigator="true" label="Fecha de consulta"  id="fechaConsulta">
                                </p:calendar>
                                <h:outputLabel  value="Buscar historia" />
                                <p:selectOneMenu  label="Buscar:" id="tipoHc" value="#{jsfLaboratorio.tipoBusqueda}"   >                              
                                    <f:selectItem itemLabel="Cédula" itemValue="3"/>
                                    <f:selectItem itemLabel="Nº carpeta" itemValue="4"/>
                                </p:selectOneMenu>
                                <h:panelGroup id="pngGh" >
                                    <p:inputText value="#{jsfLaboratorio.parametroBusqueda}" size="12" maxlength="15" id="valorBusquedaHc" />
                                </h:panelGroup>
                                <p:commandButton value="Buscar" action="#{jsfLaboratorio.buscarHistorial()}" process="busquedaHc" update="pnlBusqueda" title="Buscar historial">

                                </p:commandButton>

                                <p:spacer width="60" height="10" />



                            </h:panelGrid>
                        </h:panelGrid>

                        <h:panelGrid rendered="#{not empty jsfLaboratorio.listaConsulta}"  columns="10" id="pacienteHc" >


                            <p:dataTable id="listaConsulta" selection="#{jsfLaboratorio.cexConsulta}" rowKey="#{var.ccoId}" value="#{jsfLaboratorio.listaConsulta}" var="var"    
                                         selectionMode="single" rowIndexVar="rowIndex" rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'odd-row' : 'even-row'}">
                                <p:column width="15" headerText="Fecha" >
                                    <h:outputText value="#{var.cexPreparacion.cexAgenda.cagFecha}">
                                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                                    </h:outputText>
                                </p:column>
                                <p:column width="20" headerText="His/Clínica"  >
                                    <h:outputText value="#{var.cexPreparacion.cexAgenda.cexHistoriaClinica.chcHistoriaClinica}" />
                                </p:column>
                                <p:column width="80" headerText="Nombres" >
                                    <h:outputText value="#{var.cexPreparacion.cexAgenda.cexHistoriaClinica.chcNombreFull}" 
                                                  />
                                </p:column> 
                                <p:column width="70" headerText="Especialidad"   >
                                    <h:outputText  value="#{var.cexPreparacion.cexAgenda.cexHorariosDia.cexHorario.cexEspecialidadMedico.cexEspecialidad.cesNombre}" title="Cargar paciente"/>
                                </p:column>
                                <p:column width="80" headerText="Médico"    
                                          filterMatchMode="contains">
                                    <h:outputText value="#{var.cexPreparacion.cexAgenda.cexHorariosDia.cexHorario.cexEspecialidadMedico.admMedico.ameNombreFull}" />
                                </p:column> 
                            </p:dataTable>



                        </h:panelGrid>

                        <h:panelGrid rendered="#{not empty jsfLaboratorio.admPersona.aprId}"  columns="10" id="paciente" >




                            <h:outputLabel  value="PRIMER APELLIDO:" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprPrimerApellido}" />

                            <h:outputLabel  value="SEGUNDO APELLIDO:" />
                            <h:outputText styleClass="letraTomate" value="#{jsfLaboratorio.admPersona.aprSegundoApellido}" />

                            <h:outputLabel  value="PRIMER NOMBRE" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprPrimerNombre}" />

                            <h:outputLabel  value="SEGUNDO NOMBRE" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprSegundoNombre}" />

                            <h:outputLabel  value="CÉDULA" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprCedula}" />



                            <h:outputLabel  value="FECHA NACIMIENTO" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprFechaNacimiento}" >
                                <f:convertDateTime pattern="dd/MM/yyyy"/>
                            </h:outputText>



                            <h:outputLabel  value="EDAD" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprEdad}" />




                            <h:outputLabel  value="GÉNERO" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprGenero eq 1 ? 'HOMBRE':'MUJER'}" />



                            <h:outputLabel  value="TELEFONO" />
                            <h:outputText styleClass="letraTomate"  value="#{jsfLaboratorio.admPersona.aprTelefono}" />








                        </h:panelGrid>



                    </p:panel>
                    <p:panel header="Datos pedido" >
                        <h:panelGrid id="pnlEncabezado" columns="12" >

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Servicio:" />
                            <p:selectOneMenu  label="Servicio" required="true" id="servicio" filter="true" filterMatchMode="contains"  style="width: 255px" 
                                              converter="JsfConverterServicio"  value="#{jsfLaboratorio.object.farServicio}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfServicio.selectedItem}" var="item"/>
                            </p:selectOneMenu>


                            <f:verbatim/>
                            <h:outputText value="Sala:" />
                            <p:spinner id="sala" value="#{jsfLaboratorio.object.cplSala}" size="5" label="Sala" placeholder="Sala" min="0" 
                                       max="50" />


                            <f:verbatim/>
                            <h:outputText value="Cama:" />
                            <p:spinner id="cama" value="#{jsfLaboratorio.object.cplCama}" size="5" label="Cama" placeholder="Cama" min="0" 
                                       max="50" />


                            <f:verbatim/>
                            <h:outputText value="Prioridad:" />
                            <p:selectOneMenu  label="Prioridad" id="prioridad" style="width: 180px"   value="#{jsfLaboratorio.object.cplPrioridad}" >                              
                                <f:selectItem itemLabel="Seleccionar" itemValue="0"/>
                                <f:selectItem itemLabel="Urgente" itemValue="1"/>
                                <f:selectItem itemLabel="Rutina" itemValue="2"/>
                                <f:selectItem itemLabel="Control" itemValue="3"/>
                            </p:selectOneMenu>



                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message for="servicio" />

                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message for="sala" />

                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message for="cama" />

                            <f:verbatim/>
                            <f:verbatim/>
                            <p:message for="prioridad" />
                        </h:panelGrid>
                    </p:panel>

                    <p:dataGrid   var="lis" value="#{jsfLaboratorio.listaExamenLaboratorio}" columns="2" 
                                  id="listaExamen"  
                                  >

                        <h:outputText styleClass="letraTomate" value="#{lis.ctlNombre}" />
                        <p:dataGrid   var="var" value="#{lis.cexTipoExamenLaboratorioList}" columns="2"
                                      id="sublista"  
                                      >
                            <p:selectBooleanCheckbox label="Activo" id="activo"  value="#{var.seleccionar}" >
                            </p:selectBooleanCheckbox>
                            <p:spacer width="10" height="10" />
                            <h:outputText  value="#{var.ctlNombre}" />
                        </p:dataGrid>
                    </p:dataGrid>

                    <center>
                        <h:panelGrid columns="2" >
                            <h:panelGroup id="panelBotones">
                                <p:commandButton id="btGrabar" process="@form" update=":panelDatos" value="Grabar" action="#{jsfLaboratorio.grabarAction}"  title="Grabar registro">
                                </p:commandButton>
                                <p:commandButton id="btNuevo" process="@none" update="@form" value="Nuevo" action="#{jsfLaboratorio.nuevoAction()}"  title="Limpiar o crear nuevo registro">
                                </p:commandButton>
                            </h:panelGroup>
                            <p:ajaxStatus id="commonStatus">
                                <f:facet name="start">
                                    <h:graphicImage library="images/ajax" name="status2.gif"/>
                                </f:facet>
                            </p:ajaxStatus>
                        </h:panelGrid>
                    </center>
                    <p:message for="formDatos">
                        <f:facet name="errorMarker">
                            <h:graphicImage library="images/ajax" name="warning.gif"/>
                        </f:facet>
                        <f:facet name="infoMarker">
                            <h:graphicImage library="images/ajax" name="passed.gif"/>
                        </f:facet>
                    </p:message>


                    <h:panelGroup >
                        <h:graphicImage library="images/ajax" name="bullet.gif" />
                        <h:outputText styleClass="campo-obligatorio" value="Campo obligatorio"/>
                    </h:panelGroup>





                    <p:growl id="growl"  showDetail="true" life="6500" />  



                </h:form>

                <h:form id="formPop" >
                    <p:dialog  header="Crear persona" widgetVar="dlgPersona" modal="true" width="700" height="400">
                        <h:panelGrid   id="pnlPersona" columns="4">
                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Primer apellido:" />
                            <p:inputText label="Primer apellido"  placeholder="Ingresar Primer apellido" id="apellidoP" size="40" maxlength="100" required="true" value="#{jsfLaboratorio.admPersona.aprPrimerApellido}" >
                                <f:validateLength minimum="3"  />
                            </p:inputText>
                            <p:message for="apellidoP"/>

                            <f:verbatim/>
                            <h:outputText value="Segundo apellido:" />
                            <p:inputText label="Segundo apellido" id="apellidoM" placeholder="Segundo apellido" size="40" maxlength="100"  value="#{jsfLaboratorio.admPersona.aprSegundoApellido}" >
                            </p:inputText>
                            <p:message for="apellidoM"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Primer nombre:" />
                            <p:inputText label="Nombre" id="nombreP" placeholder="Ingresar Primer Nombre" size="40" maxlength="100" required="true" value="#{jsfLaboratorio.admPersona.aprPrimerNombre}" >
                                <f:validateLength minimum="3"  />
                            </p:inputText>
                            <p:message for="nombreP"/>

                            <f:verbatim/>
                            <h:outputText value="Segundo nombre:" />
                            <p:inputText label="Nombre" id="nombreS" size="40" placeholder="Ingresar Segundo Nombre" maxlength="100"  value="#{jsfLaboratorio.admPersona.aprSegundoNombre}" >


                            </p:inputText>
                            <p:message for="nombreS"/>


                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Cédula:" />
                            <h:panelGrid columns="2" >
                                <r:region  >
                                    <p:inputText disabled="#{jsfLaboratorio.admPersona.aprIsCedula eq false}" 
                                                 placeholder="Ingresar Cédula" required="true" size="30" label="Cédula" id="cedula"  maxlength="11"  value="#{jsfLaboratorio.admPersona.aprCedula}" >
                                    </p:inputText>
                                </r:region>
                                <r:region  >
                                    <h:outputText value="Habilitar" />
                                    <p:selectBooleanCheckbox id="habilitar" value="#{jsfLaboratorio.admPersona.aprIsCedula}" >
                                        <r:param value="false" assignTo="#{jsfLaboratorio.admPersona.aprIsCedula}" />
                                        <f:ajax execute="habilitar" event="change" render="cedula pasaporte" />
                                    </p:selectBooleanCheckbox>
                                </r:region>
                            </h:panelGrid>
                            <p:message id="ced" for="cedula"/>


                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Pasaporte:" />
                            <p:inputText disabled="#{jsfLaboratorio.admPersona.aprIsCedula eq true}" placeholder="Ingresar Pasaporte o cédula extranjera" required="true" size="40" label="Pasaporte o cédula extranjera" id="pasaporte"  maxlength="20"  value="#{jsfLaboratorio.admPersona.aprIdentificacion}" >
                            </p:inputText>
                            <p:message  for="pasaporte"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Unidad Operativa:" />
                            <p:selectOneMenu  label="Unidad operativa" required="true" id="unidad" filter="true" filterMatchMode="contains"  style="width: 255px" 
                                              converter="JsfConverterUnidadOperativa"  value="#{jsfLaboratorio.admPersona.admUnidadOperativa}" >                              
                                <f:selectItem itemLabel="Seleccione ..."/>
                                <f:selectItems value="#{jsfUnidadOperativa.selectedItem}" var="item"/>
                            </p:selectOneMenu>
                            <p:message  for="unidad"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Dirección de domicilio:" />
                            <p:inputText label="Dirección domicilio" id="direccion" placeholder="Ingresar Dirección" size="40" maxlength="100" required="true" value="#{jsfLaboratorio.admPersona.aprDireccion}" >
                                <f:validateLength minimum="3"  />
                            </p:inputText>
                            <p:message for="direccion"/>

                            <f:verbatim/>
                            <h:outputText value="Teléfono:" />
                            <p:inputText label="Telefono fijo" id="telefonoF" placeholder="Ingresar Telefono Convencional" size="40" maxlength="9"  value="#{jsfLaboratorio.admPersona.aprTelefono}" >                       
                            </p:inputText>
                            <p:message for="telefonoF"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText  value="Fecha Nacimiento:" />
                            <p:calendar pattern="dd-MM-yyyy" mask="true" size="40" placeholder="Seleccionar fecha de nacimiento" 
                                        label="Fecha de nacimeinto"  required="true"  
                                        id="fecha1" value="#{jsfLaboratorio.admPersona.aprFechaNacimiento}">
                                <p:ajax event="select" listener="#{jsfLaboratorio.calcularEdad}"  update="edad" />  
                            </p:calendar>
                            <p:message for="fecha1"/>


                            <f:verbatim/>
                            <h:outputText value="Edad:" />
                            <h:outputText style="font-size: large" styleClass="letraTomate" id="edad" value="#{jsfLaboratorio.admPersona.aprEdad}" />
                            <p:message for="edad"/>

                            <h:graphicImage library="images/ajax" name="bullet.gif" />
                            <h:outputText value="Genero:" />
                            <p:selectOneMenu  label="Genero" id="genero" style="width: 240px"  value="#{jsfLaboratorio.admPersona.aprGenero}" >                              
                                <f:selectItem itemLabel="Masculino" itemValue="1"/>
                                <f:selectItem itemLabel="Femenino" itemValue="2"/>
                            </p:selectOneMenu>
                            <p:message for="genero" />

                            <f:verbatim/>
                            <h:outputText value="Fecha admisión:" />
                            <h:outputText styleClass="letraTomate" value="#{jsfLaboratorio.admPersona.aprFechaAdmision}">
                                <f:convertDateTime pattern="yyyy/MM/dd"/>
                            </h:outputText>
                            <f:verbatim/>

                            <f:verbatim/>
                            <h:outputText value="Hora admisión:" />
                            <h:outputText styleClass="letraTomate" value="#{jsfLaboratorio.admPersona.aprHoraAdmision}">
                                <f:convertDateTime pattern="HH:mm"/>
                            </h:outputText>
                            <f:verbatim/>
                        </h:panelGrid> 
                        <center>
                            <r:commandButton id="btGrabarPer" execute="pnlPersona" render="pnlBusqueda" value="Grabar" action="#{jsfLaboratorio.grabarPersona()}"  title="Grabar registro">
                            </r:commandButton>
                        </center>
                    </p:dialog> 
                </h:form>
            </h:panelGrid>
        </center>



    </ui:define>

</ui:composition>
